1. Technical Field
This disclosure relates to electronic design automation (EDA). More specifically, this disclosure relates to determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations.
2. Related Art
Rapid advances in computing technology have made it possible to perform trillions of computational operations each second on data sets that are sometimes as large as trillions of bytes. These advances can be largely attributed to the exponential increase in the size and complexity of integrated circuits.
To ensure that a manufactured chip will perform as desired, the circuit design is usually checked for compliance with a large number of design requirements. In fact, a circuit design is typically not manufactured until it satisfies the design requirements which can include, but are not limited to, timing requirements, noise requirements, leakage requirements, etc.
In a typical circuit design flow, a compliance checking tool is used to identify design requirement violations in a circuit design. Incremental adjustments are then made to the circuit design to fix the design requirement violations. Once the circuit design is violation free, the circuit design can be readied for manufacturing.
Note that fixing a design requirement violation may create new violations. Hence, the process of identifying and fixing violations may need to be performed multiple times before the circuit design is violation free. Furthermore, note that variations in the manufacturing process can cause variations in the characteristics of a chip. Hence, circuit designers typically ensure that design requirements are satisfied for multiple corners which represent different manufacturing process conditions and/or different operating conditions.
Today's circuit designs have a large number of gates, and often have a large number of design requirement violations. Furthermore, the design requirements typically need to be satisfied over a large number of corners. As a result, conventional techniques for fixing design violations have poor performance and poor QoR (quality of results).